In today's computing world, security has come to the forefront of technological concerns due to the proliferation of viruses, Trojan horses, worms, and other malicious software designed to harass and annoy. Security vulnerabilities, such as buffer overruns, heap overflows, parsing issues and race conditions, are often the cause of a number of these software issues. Virtually all businesses, banks, universities, hospitals and other organizations rely entirely upon computing systems to store, access, and distribute sensitive information. Networks such as the Internet and smaller local networks are prevalent and provide a greater degree of flexibility and capabilities than ever before attained. However, networking presents attackers with a unique opportunity to intercept communications, or otherwise compromise security systems without alerting the computing system operator of the breach. A serious security breach could easily cause damage measured in the billions of dollars. Given the high stakes involved, and the persistence of attackers, there is a need to strengthen computing security measures.
Those interested in disrupting computers from their normal working order are ever seeking new attack vectors. The complexity of software and hardware in today's networked computing environment has enabled unprecedented levels of communication and productivity; but due to the complexity, it is increasingly difficult for software producers and testers to identify and thwart all possible security threats. A race between security experts on the inside, and hackers or other malicious groups on the outside is constantly being run to identify possible security flaws in a product. Automation has played a large role in this process, enabling far more testing than would be possible otherwise. Fuzzing, a process by which good data is altered into a corrupted form, is one way in which the testing process has moved forward. Despite the use of fuzzers and other forms of automated testing, there still exists a need for a more secure computing environment.